package com.tarena.lbs.marketing.web.service;
import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.BasePageList;
import com.tarena.lbs.pojo.marketing.bo.MarketingActivityBO;
import com.tarena.lbs.pojo.marketing.param.MarketingActivityParam;
import com.tarena.lbs.pojo.marketing.param.UpdateParam;
import com.tarena.lbs.pojo.marketing.query.MarketingActivityQuery;
import java.util.List;

public interface MarketingActivityService {

    /**
     * 插入活动
     */
    void insert(MarketingActivityParam param) throws BusinessException;

    /**
     * 更新活动
     */
    void update(MarketingActivityParam param) throws BusinessException;

    /**
     * 更新活动状态
     */
    void updateStatus(UpdateParam updateParam);

    /**
     * 活动列表
     */
    BasePageList<MarketingActivityBO> list(MarketingActivityQuery query);

    /**
     * 活动详情
     */
    MarketingActivityBO getDetail(Integer activityId);

    /**
     * 未结束执行的活动列表
     */
    List<MarketingActivityBO> selectListByStatus();

    /**
     * 批量更新活动状态
     */
    void batchUpdateActivityStatus(List<UpdateParam> params);

    /**
     * 获取店铺最近的活动
     */
    MarketingActivityBO handleMessage(String message) throws Exception;
}
